import axios from 'axios';
import qs from 'qs';
import env from './env';

// 添加一个请求拦截器
axios.interceptors.request.use(config => {
  return config;
}, error => {
  return Promise.reject(error); // 此处使用promise.reject()
});

// 添加一个响应拦截器
axios.interceptors.response.use(response => {
  const res = response.data;
  if (!res.code && res.code === 0) {
    return response.data;
  } else if (res.code === 406) {
    // tokenId失效,重新登录
    return Promise.reject('error');
  } else {
    return Promise.reject('error');
  }
}, error => {
    if (error && error.response) {
    switch (error.response.status) {
      case 400:
        error.message = '请求错误(400)';
        break;
      case 401:
        error.message = '未授权，请重新登录(401)';
        break;
      default:
        error.message = `连接出错(${error.response.status})!`;
    }
  } else {
    error.message = '连接服务器失败!';
  }
  return Promise.reject(error.response); // 此处使用promise.reject()
});

export default {
  // post请求
  post(url, data) {
    console.log('post请求中的data参数 ',data);
    return axios({
      method: 'post',
      baseURL: env.baseUrl,
      url,
      data: qs.stringify(data),
      timeout: 10000,
      withCredentials: false, // 是否携带缓存
      headers: {
        'X-Requested-With': 'XMLHttpRequest',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
      }
    }).catch((err) => {
      console.log(err);
    });
  }, 

  // get请求
  get(url, data) {
    return axios({
      method: 'get',
      baseURL: env.baseUrl,
      url,
      params: data,
      timeout: 10000,
      headers: {
        'X-Requested-With': 'XMLHttpRequest'
      } 
    });
  },

  // get请求测试
  getTest(url, data) {
    return axios({
      method: 'get',
      baseURL: env.baseUrl,
      url,
      params: data,
      timeout: 10000,
      headers: {
        'X-Requested-With': 'XMLHttpRequest'
      }  
    }).then((response) => {
      // return response; // 返回json数据
      return {name: '11' }; // 最后会返回该字符串
    });
  }
};
